真心不明白为什么这题是绿题,只是一个模拟。
读懂题意是关键
我第一次提交的时候对题面理解有误,加了一句sort(x, x+n);,结果WA了很多测试点。其实这里是需要按照顺序到达每个地点的QAQ。
模拟方法
对于每一个地点,判断两种方案中耗费疲劳值最少的方案,详见代码。
#include <iostream>
using namespace std;
#define ll long long
int main()
{
ll n, a, b;
cin>>n>>a>>b;
ll x[100001];
for(ll i=1;i<=n;i++) cin>>x[i];
ll sum = 0;
for(ll i=1;i<n;i++)
{
ll l = x[i+1] - x[i];
sum += min(b, a*l);
}
cout<<sum<<endl;
return 0;
}